/*
 * File:   lexeme.h
 * Author: ScaV
 *
 * Created on October 26, 2011, 5:56 PM
 */

#ifndef LEXEME_H
#define	LEXEME_H

#define LEX_ID_LIMIT	0

#include <vector>

enum LEX_TYPE {
	LEX_UNKNOWN, LEX_KEYWORD, LEX_CONSTANT, LEX_IDENTIFICATOR, LEX_SEPARATOR, LEX_END, LEX_MAX
};

class lexeme {
public:
	lexeme();
	lexeme(const lexeme& orig);
	virtual ~lexeme();

	char *getType();
	char *getName();
	int getLine() { return line; };

	bool setType(LEX_TYPE tp);
	bool setName(std::vector<char>& name);
	bool setLine(int ln);

	std::vector<char> *str;
	LEX_TYPE type;
	int line;
	long *index;
};

#endif	/* LEXEME_H */

